
#ifndef _TTG_DEVICES_MAPS_DEVICE_MAPS_
#define _TTG_DEVICES_MAPS_DEVICE_MAPS_
#include "Common/Definitions.h"

#include "Runtime.Low/Devices/Identifiers.h"
#include "InternalMap.h"

namespace ttg
{
	namespace devices
	{
		template <class T>
		class DeviceMap :public ttg_internal::devices::InternalMap<T, DeviceID>
		{
			public:
				//Returns required element.
				//If such element does not exist, creates a new record.
				inline T &operator [](DeviceID id)
				{ return (*(ttg_internal::devices::InternalMap<T, DeviceID> *)this)[id]; }
		};
	}
}

#endif
